The Universal Serial Bus (USB, described in its current release in the Universal Serial Bus Specification Revision 1.1) is envisioned as an industry standard for the connection of all peripherals to a personal computer or workstation. USB seeks to replace the various specialized connectors and communication formats utilized with keyboards, mice, joysticks, multimedia inputs and outputs, printers, external disk drives, external CD-ROM drives, modems, parallel ports, serial ports, network connections, and virtually any other type of peripheral, with a single universal cable and connector type and a common communication format. Some of the other features of USB are: a true plug-and-play architecture requiring no user configuration; support for up to 127 peripherals on one bus; flexibility; and low cost.
As shown in FIG. 1, a USB physical interconnect has a tiered star topology 20. A bus has a single host, and may have up to five tiers of hubs. A function provides a capability to the host, and may be a data source and/or a data sink. A hub is at the center of each star. A USB cable connects an upstream hub to a downstream USB device, i.e. another hub or a function. Hubs and functions may be self-powered, or bus-powered; a bus-powered device receives power from its upstream hub through the USB cable; a self-powered device receives power from somewhere else.
When a USB device is plugged in to a USB bus, the host detects the new device and "enumerates" it. The enumeration process includes assigning a unique USB address to the device, querying the device to determine what type of device it is, determining the device's communication requirements and whether a bandwidth allocation is available to meet these requirements, and allocating any necessary host software resources such as device drivers.
USB is a complete break from the past--it provides no backwards compatability with previous communication interfaces. But many new users of USB-equipped computers have significant investments in non-USB peripherals such as parallel cable-interfaced printers. Rather than junking these legacy peripherals, many users would prefer to somehow utilize non-USB peripherals with USB-equipped computers. Several vendors have addressed this need by offering USB bridges, which convert USB signals to a legacy format and vice-versa.
If a USB bridge is used to patch a non-USB peripheral into a USB bus, the enumeration process described above is, in effect, divided between the bridge and the peripheral. The host first enumerates the USB bridge itself. This consists of detecting and identifying the bridge device and allocating required resources to support communications between the host and the bridge device via the USB protocol. The host then queries the bridge to determine the type of peripheral attached and allocate resources appropriate to that device.